<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>练习6</title>
</head>
<style>
    *{
        padding: 0;
        margin: 0;
    }
    table{
        /* border: 1px solid #333; */
    }
    table td{
        border: 1px solid #333;
        padding: 10px;
    }
</style>

<body>
    <script>
        // 1.打印水仙花数（三位数），（153=1*1*1+5*5*5+3*3*3）每位数字的立方和等于等于该数即水仙花数，打印出所有水仙花数。
        for (var i = 100; i < 1000; i++) {
            var a = parseInt(i / 100);
            var b = parseInt(i / 10) % 10;
            var c = i % 10;
            var d = a * a * a + b * b * b + c * c * c;
            if (i == d) {
                console.log('水仙花数：' + i);
            }
        }

        // 2.求10的阶乘   12345*。。。。*10
        var sum = 1;
        for (var i = 1; i < 11; i++) {
            sum *= i;
        }
        console.log(sum);

        // 3.珠峰海拔8848米，现在有足够大的纸，厚度是0.01米，折多少次高度可以超过珠穆朗玛峰。
        var a = 0.01;
        for (var i = 1; ; i++) {
            a = a * 2;
            if (a > 8848) {
                break;
            }
        }
        console.log(i);

        // 4.打印如下图形
        //     *
        //     ***
        //     *****
        //     *******
        //     *********
        var i = 1;
        while (i < 6) {
            var j = 0;
            while (j < i * 2 - 1) {
                document.write('*')
                j++;
            }
            i++;
            document.write('<br>')
        }

        // 5.等腰三角形，菱形、九九乘法口诀表 、空心的等腰三角形             ★
        // 等腰三角形
        var i = 1;
        var str = '';
        while (i < 5) {
            var j = 0;
            var k = 0;
            while (j < 5 - i) {
                str += '&nbsp; &nbsp;'
                j++;
            }
            while (k < i * 2 - 1) {
                str += '★'
                k++;
            }
            str += '<br>'
            i++;
        }
        document.write(str)
        //菱形
        var i = 1;
        var str = '';
        while (i < 5) {
            var j = 0;
            var k = 0;
            while (j < 5 - i) {
                str += '&nbsp; &nbsp;'
                j++;
            }
            while (k < i * 2 - 1) {
                str += '★'
                k++;
            }
            str += '<br>'
            i++;
        }
        var i = 3;
        while (i > 0) {
            var j = 0;
            var k = 0;
            while (j < 5 - i) {
                str += '&nbsp; &nbsp;'
                j++;
            }
            while (k < i * 2 - 1) {
                str += '★'
                k++;
            }
            str += '<br>'
            i--;
        }
        document.write(str)
        //空心等腰三角形
        var i = 0;
        var str = '';
        while (i < 5) {
            var j = 0;
            while (j < 5 + i) {
                if (j == 4 - i || j == 4 + i || i == 4) {
                    str += '★'
                } else {
                    str += '&nbsp; &nbsp;'
                }
                j++;
            }
            str += '<br>'
            i++;
        }

        // var k = 0;
        // while (k < 9) {
        //     str += ' ★'
        //     k++;
        // }
        document.write(str)

        //九九乘法表
        var i, j;
        var str = '';
        str += '<table>';
        for (i = 1; i < 10; i++) {
            str += '<tr>'
            for (j = 1; j <= i; j++) {
                str += '<td>'
                str += j + "x" + i + "=" + i * j;
                // num += "&nbsp;&nbsp;";
                str += '</td>'
            }   
            str += '</tr>'
            // num += "<br/>"
        }
        str += '</table>';
        document.write(str);

        //6、穷举的例子
        // 公鸡3块钱一只，母鸡2块钱一只，小鸡5毛一只，小明有100块钱，问：花光所有的钱，有多少种购买组合。

        var x = 0, m = 1;  //公鸡
        while (x < 33) {
            var y = 0;  //母鸡
            while (y < 51) {
                var z = 0;  //小鸡
                while (z < 201) {
                    if (100 == 3 * x + 2 * y + 0.5 * z) {
                        m++;
                    }
                    z++;
                }
                y++;
            }
            x++;
        }
        document.write(m);

        // 7、现在鸡兔同笼，共36个，腿有92条，问各有鸡兔几只？
        var x = 0;
        while (x < 24) {
            y = 0
            while (y < 47) {
                if (x + y == 36 && 4 * x + 2 * y == 92) {
                    console.log('兔子x:' + x + ',鸡y:' + y);
                }
                y++;
            }
            x++;
        }
        //8、现在100匹马，100担货，大马驼2担，中马驼1担，两只小马共驼1担，问大、中、小马各有几匹？

        var x = 0;
        while (x < 100) {
            var y = 0;
            while (y < 100) {
                var z = 0;
                while (z <= 100) {
                    if (x + y + z == 100 && 2 * x + y + 0.5 * z == 100) {
                        console.log('大马驼x:' + x + ',中马驼y:' + y + ',小马驼z:' + z);
                    }
                    z++;
                }
                y++;
            }
            x++;
        }

        // 9、获取第38次斐波那契数列的值，以及 前38次值的总和;    (数列规律是：0   1   1   2   3   5   8   13      .....
        //分析规律是：第三个数=第一个数+第二个数)
        var x = 3;
        var sum = 1;
        var y1 = 0;
        var y2 = 1;
        while (x <= 38) {
            var y = y1 + y2;
            y1 = y2;
            y2 = y;
            sum += y;
            x++;
        }
        alert(sum + '<br>数' + y)   //63245985<br>数24157817
                //102334154<br>数39088169
    </script>
</body>

</html>